package cn.iocoder.lw.module.core.enums.workorder;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 工单状态枚举
 *
 * @author Lw源码
 */
@AllArgsConstructor
@Getter
public enum WorkOrderStatusEnum {

    /**
     * 待派单
     */
    PENDING_ASSIGN(0, "待派单"),

    /**
     * 待接单
     */
    PENDING_ACCEPT(1, "待接单"),

    /**
     * 已接单-待上门
     */
    ACCEPTED(2, "已接单-待上门"),

    /**
     * 进行中-维修中
     */
    IN_PROGRESS(3, "进行中-维修中"),

    /**
     * 待确认-待用户确认
     */
    PENDING_CONFIRM(4, "待确认-待用户确认"),

    /**
     * 已完成
     */
    COMPLETED(5, "已完成"),

    /**
     * 已取消
     */
    CANCELLED(6, "已取消");

    /**
     * 状态值
     */
    private final Integer status;

    /**
     * 状态名
     */
    private final String name;

    /**
     * 根据状态值获取枚举
     *
     * @param status 状态值
     * @return 枚举
     */
    public static WorkOrderStatusEnum getByStatus(Integer status) {
        if (status == null) {
            return null;
        }
        for (WorkOrderStatusEnum workOrderStatus : values()) {
            if (workOrderStatus.getStatus().equals(status)) {
                return workOrderStatus;
            }
        }
        return null;
    }

}